
package memoryimage.models;

import java.util.ArrayList;
import java.util.List;

import org.eclipse.core.runtime.ListenerList;

public class MemoryImage {
	private List<ByteDataArray> byteDataArrayList;
	private ListenerList listenerList;

	public MemoryImage() {
		byteDataArrayList = new ArrayList<ByteDataArray>();
		listenerList = new ListenerList();
	}
	
	public List<ByteDataArray> getList(){
		return byteDataArrayList;
	}
	
	public void add(ByteDataArray byteDataArray){
		byteDataArrayList.add(byteDataArray);
		Object[] listeners = listenerList.getListeners();
		for (Object listener : listeners) {
			((ByteDataArrayListener) listener).add(byteDataArray);
		}
	}
	
	public void remove(ByteDataArray byteDataArray){
		byteDataArrayList.remove(byteDataArray);
		Object[] listeners = listenerList.getListeners();
		for (Object listener : listeners) {
			((ByteDataArrayListener) listener).remove(byteDataArray);
		}
	}
	
	public void addByteDataArrayListener(ByteDataArrayListener listener){
		listenerList.add(listener);
	}
	
	public void removeListener(ByteDataArrayListener listener){
		listenerList.remove(listener);
	}
	
	public void changeTarget(int index, ByteDataArray byteDataArray) {
		byteDataArrayList.set(index,byteDataArray);
	}
}
